import router from "@/router";

export default {
	state: {
		viewTags: [],
	},
	mutations: {
		pushViewTags(state, route) {
			let backPathIndex = state.viewTags.findIndex(
				(item) => item.fullPath == router.options.history.state.back
			);
			let target = state.viewTags.find(
				(item) => item.fullPath === route.fullPath
			);
			let isName = route.name;
			if (!target && isName) {
				if (backPathIndex == -1) {
					state.viewTags.push(route);
				} else {
					state.viewTags.splice(backPathIndex + 1, 0, route);
				}
			}
		},
		removeViewTags(state, route) {
			state.viewTags.forEach((item, index) => {
				if (item.fullPath === route.fullPath) {
					state.viewTags.splice(index, 1);
				}
			});
		},
		updateViewTags(state, route) {
			state.viewTags.forEach((item) => {
				if (item.fullPath == route.fullPath) {
					item = Object.assign(item, route);
				}
			});
		},
		updateViewTagsTitle(state, title = "") {
			const nowFullPath = location.hash.substring(1);
			state.viewTags.forEach((item) => {
				if (item.fullPath == nowFullPath) {
					item.meta.title = title;
				}
			});
		},
		clearViewTags(state) {
			state.viewTags = [];
		},
	},
};
